#ifndef _TRANS_H__
#define _TRANS_H__

#include "boolean.h"
#include "stack.h"
#include "ReadFile.h"

void doS ();
/* perintah yang dijalankan apabila topstack adalah 'S'*/

void doQ ();
/* perintah yang dijalankan apabila topstack adalah 'Q'*/

void dob ();
/* perintah yang dijalankan apabila topstack adalah 'b' dan bacaan adalah "begin"*/

void doe ();
/* perintah yang dijalankan apabila topstack adalah 'e' dan bacaan adalah "end"*/

void dom ();
/* perintah yang dijalankan apabila topstack adalah 'm' dan bacaan adalah "input"*/

void doK ();
/* perintah yang dijalankan apabila topstack adalah 'K'*/

void dow ();
/* perintah yang dijalankan apabila topstack adalah 'w' dan bacaan adalah "while"*/

void dod ();
/* perintah yang dijalankan apabila topstack adalah 'd' dan bacaan adalah "do"*/

void doC ();
/* perintah yang dijalankan apabila topstack adalah 'C'*/

void doA ();
/* perintah yang dijalankan apabila topstack adalah 'A'*/

void doi ();
/* perintah yang dijalankan apabila topstack adalah 'i' dan bacaan adalah "if"*/

void dot ();
/* perintah yang dijalankan apabila topstack adalah 't' dan bacaan adalah "then"*/

void don ();
/* perintah yang dijalankan apabila topstack adalah 'n' dan bacaan adalah "else"*/

void checkBuKu (myKata * kataTemp, boolean * cek);
/* perintah yang dijalankan apabila topstack adalah '(' dan bacaan adalah "("*/

void dor ();
/* perintah yang dijalankan apabila topstack adalah 'r' dan bacaan adalah "repeat"*/

void dou ();
/* perintah yang dijalankan apabila topstack adalah 'u' dan bacaan adalah "until"*/

void doo ();
/* perintah yang dijalankan apabila topstack adalah 'o' dan bacaan adalah "Output"*/

void checkTuKu (myKata * kataTemp, boolean * cek);
/* perintah yang dijalankan apabila topstack adalah ')' dan bacaan adalah ")"*/

void checkO (myKata * kataTemp, boolean *cek);
/* perintah yang dijalankan apabila topstack adalah 'O' dan bacaan berupa perbandingan*/

void dop (myKata * kataTemp, boolean * cek);
/* perintah yang dijalankan apabila topstack adalah 'p' dan bacaan adalah operator pembanding*/

void dox (myKata * kataTemp, boolean * cek);
/* perintah yang dijalankan apabila topstack adalah 'x' dan bacaan adalah operator aritmatik*/

void dov (myKata temp, boolean * cek);
/* perintah yang dijalankan apabila topstack adalah 'v' dan bacaan adalah angka atau variabel*/

void doy (myKata * kataTemp, boolean *cek);
/* perintah yang dijalankan apabila topstack adalah 'y' dan bacaan adalah variabel*/

void doO (myKata * kataTemp, boolean *cek);
/* perintah yang dijalankan apabila topstack adalah 'O'*/

void doBuCond (myKata *temp, boolean * cek);

void doBuOp (myKata *temp, boolean * cek, int i);

void doBuVar (myKata *temp, boolean * cek, int i);

#endif
